package com.mingqijia.gassafety.webserver.service.workorder;

import com.mingqijia.gassafety.webserver.request.EquipmentPositionRequest;
import com.mingqijia.gassafety.webserver.request.ConsumerCreateRequest;
import com.mingqijia.gassafety.webserver.request.ConsumerUnbindRequest;
import com.mingqijia.gassafety.webserver.request.workorder.asst.ContactsEditRequest;
import com.mingqijia.gassafety.webserver.request.workorder.asst.ContactsListRequest;
import com.mingqijia.gassafety.webserver.request.workorder.asst.OrderCompleteRequest;
import com.mingqijia.gassafety.webserver.request.workorder.asst.OrderInfoSyncRequest;
import com.mingqijia.gassafety.webserver.request.workorder.order.OrderSparkOrderRequest;
import com.mingqijia.gassafety.webserver.response.workorder.asst.ContactsListResponse;

import java.util.List;

public interface SyncOrderService {
    /**
     * 根据时刻助手在 新增设备时同步的数据, 创建客户并绑定设备
     * @param request
     */
    void createConsumerBindImei(ConsumerCreateRequest request);

    /**
     * 根据新时刻助手在 新增设备时同步的数据, 创建客户并绑定设备
     * @param request
     */
    void createOrderConsumerBindImei(ConsumerCreateRequest request);

    /**
     * 时刻助手在任务详情中,解绑设备
     * @param request
     */
    void unbindEquipment(ConsumerUnbindRequest request);

    /**
     * 时刻助手在任务详情中,解绑设备
     * @param request
     */
    String unbindOrderEquipment(ConsumerUnbindRequest request);

    /**
     * 同步时刻助手中设备的安装位置
     * @param request
     */
    void equipmentPosition(List<EquipmentPositionRequest> request);

    /**
     * 同步工单信息到报警器
     * @param request
     */
    void orderInfo(OrderInfoSyncRequest request);
    /**
     * 工单完成
     * @param orderNo
     */
    void orderComplete(OrderCompleteRequest request);

    /**
     * 创建工单取消工单
     * @param request
     * @return
     */
    Integer spark(OrderSparkOrderRequest request);

    /**
     * 查询工单调试状态
     * @param request
     * @return
     */
    Integer sparkStatus(OrderSparkOrderRequest request);

    /**
     * 修改联系人信息
     * @param request
     */
    void editContacts(ContactsEditRequest request);

    /**
     * 获取联系人列表
     * @param request
     * @return
     */
    List<ContactsListResponse> getContactsList(ContactsListRequest request);
}
